package com.xuanwei.core.entity.param;

import com.xuanwei.core.annos.Contain;
import com.xuanwei.core.annos.Money;
import com.xuanwei.core.annos.Positive;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * @Author jiangyong
 * @Description TODO
 * @Date 2019/7/17 14:17
 **/
@Data
public class Coupon {

    /**
     * 优惠券名称
     */
    @NotBlank(message = "title不能为空")
    private String title;

    /**
     * 优惠券类型 0满减型 1无门栏 2指定商品
     */
    @Contain(values = {0, 1}, message = "优惠券类型错误")
    private Integer type;

    @Contain(values = {0, 1, 2}, message = "优惠券限制类型错误")
    private Integer limitType;

    /**
     * 活动ID
     */
    private Integer objId;

    /**
     * 优惠券金额
     */
    @Money(message = "优惠券金额格式错误")
    private BigDecimal amount;

    /**
     * 门栏金额
     */
    private BigDecimal conditionAmount;

    /**
     * 过期类型 0自定义时间 1领取后时间
     */
    @Contain(values = {0, 1}, message = "过期类型格式错误")
    private Integer expireType;

    /**
     * 总发放量
     */
    @Positive(message = "发放总量必须大于0")
    private Integer limitSendTotal;

    /**
     * 每人限制
     */
    @Positive(message = "每人限制大于0")
    private Integer limitPre;

    /**
     * 领取时间多少天后过期
     */
    private Integer expireDays;

    /**
     * 开始时间
     */
    private LocalDate expireStartTime;

    /**
     * 结束时间
     */
    private LocalDate expireEndTime;

    /**
     * 说明
     */
    @NotBlank(message = "说明不能为空")
    private String explainText;
}
